
class Person(object):

    def __init__(self,name,age):
        self.name = name # 实例变量，成员变量
        self.age  = age
        self.__life_val = 100 # __私有变量，__私有属性 加两个下划线即可 外部无法访问 内部可以访问

    def get_life_val(self):
        print("生命值还有",self.__life_val)
        return self.__life_val

    def __breath(self): # 私有方法，只有内部可以调用
        print("%s is breathing..."% self.name)

    def got_attack(self):
        self.__life_val -= 20
        print("被攻击了，生命值减20")
        self.__breath()
        return self.__life_val


a = Person("Alex",22)

# a.life_val -= 50
# print(a.__life_val)

a.get_life_val()
a.got_attack()

# a.__breath()

# 实例._类名方法  这样可以调用私有方法 不推荐用法
a._Person__breath()

# 修改私有属性
a._Person__life_val = 10
a.get_life_val()

a.__val = 444 # 实例生成后，在用下划线创建的属性不是私有属性，外部可以访问
print(a.__val)